Computer graphics are graphics created using computers and a representation of image data. Computer graphics are typically implemented with specialized graphic hardware and software. Such hardware and software can be implemented on general purpose computers or special purpose devices, including smartphones, tablet computers, gaming consoles and portable game devices. Computer graphic development has had a significant impact on many types of media and has revolutionized animation, movies and the video game industry.
Computer graphics may involve encoding information about shapes and colors of objects that make up an image. This can allow for great flexibility in rendering the objects. Some computer graphics systems can generate animations by performing computations on data representing the objects to simulate movement of the objects. Such computations may involve simulating physical interactions that control the movement of the objects. Such simulation may compute the locations of points on each object (sometimes called vertices) may be computed in three dimensions for each frame of animation. Then the objects may be rendered as a two dimensional image.
Modern computer graphics often involves coordination of two processors, a central processing unit (CPU) and a graphics processing unit (GPU). The GPU is a specialized electronic circuit designed to accelerate the creation of images in a frame buffer intended for output to a display. GPUs are used in embedded systems, mobile phones, personal computers, workstations, and game consoles. A GPU is typically designed to be efficient at manipulating computer graphics. GPU's often have a highly parallel processing architecture that makes the GPU more effective than a general-purpose CPU for algorithms where processing of large blocks of data is done in parallel.
Often, the physics simulations are performed on the CPU and rendering of the images are performed on the GPU. In some computer graphics systems certain re-processing of data is performed on the CPU to set up work for work to be run on the GPU. This may involve, e.g., setting up buffers of data and configuration parameters for rendering programs (sometimes called shaders) that run on the GPU.
Graphics processing units have become increasingly more powerful, with processing capabilities often rivaling or even exceeding those of the CPU.
It is within this context that aspects of the present disclosure arise.